EGEsoll - сборник решений задач из ЕГЭ

Задача 3 произведение кратно 26

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен). Необходимо определить количество пар, для которых произведение элементов делится на 26.

В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 60000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000. В качестве результата программа должна напечатать одно число: количество пар, в которых произведение элементов кратно 26.

В ответе укажите значение искомой суммы для файла.

Download File 1

Добавлено: 20.04.26 20:39

Перейти к решению

Решение

Ответ: 199360639

Неоптимальное решение на Python:

f = open("embed.txt")
n = f.readline()
a = [int(line) for line in f.readlines()]
k = 0
for i in range(len(a)-1):
  for j in range(i+1, len(a)):
    if a[i] * a[j] % 26 == 0:
      k += 1
print(k)

Оптимальное решение на Python:

import sys
sys.setrecursionlimit(1000000)

f = open("embed.txt")
n = f.readline()
a = [int(line) for line in f.readlines()]
A2 = [el for el in a if el % 2 == 0 and el % 13 != 0]
A13 = [el for el in a if el % 13 == 0 and el % 2 != 0]
A26 = [el for el in a if el % 26 == 0]

def fact(n):
    if n == 0:
        return 1
    return n * fact(n-1)

pari26 = (len(a) - len(A26)) * len(A26)
pari = fact(len(A26))/(fact(len(A26)-2)*fact(2))
print(pari + pari26 + len(A2)*len(A13))

Автор - rubygem17

Объяснение

None

Назад